package cn.peng.stu4teach.util.databinding;

import android.widget.ImageView;

import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.annotation.RawRes;
import androidx.databinding.BindingAdapter;

import cn.peng.stu4teach.util.GlideUtil;

/**
 * 基于 Glide 实现的适用于 ImageView 加载图片资源的 DataBindingAdapter
 */
public class ImageViewAdapter {

    /**
     * Glide + DataBingding 实现的图片加载方法
     * " @BindingAdapter " 是 DataBinding 中的关键字标签，
     * ”value“ 是一个数组，其中的字符串就是对外暴露的属性。
     * ”requireAll“ 表示使用时是需要同时填充全部的 value 。false-不需要。
     * <p></>
     * 方法接收的参数顺序要与 value 中的顺序一致，防止出现莫名错误。
     */
    @BindingAdapter (value = {"imgSrc", "placeholder", "errorImg","radius"}, requireAll = false)
    public static void loadImageIntoIv (ImageView pIv, String imgSrc, int placeholder, int errorImg,int radius) {
        GlideUtil.instance().load(pIv,imgSrc,placeholder,errorImg);
    }

    /**
     * Glide + DataBingding 实现的图片加载方法
     * " @BindingAdapter " 是 DataBinding 中的关键字标签，
     * ”value“ 是一个数组，其中的字符串就是对外暴露的属性。
     * ”requireAll“ 表示使用时是需要同时填充全部的 value 。false-不需要。
     * <p></>
     * 方法接收的参数顺序要与 value 中的顺序一致，防止出现莫名错误。
     *
     * @param radius 图片圆角半径
     */
    @BindingAdapter (value = {"imgSrc", "placeholder", "errorImg","radius"}, requireAll = false)
    public static void loadImageResourceIntoIv (ImageView pIv, @RawRes @DrawableRes Integer imgSrc, int placeholder, int errorImg,int radius) {
        GlideUtil.instance().load(pIv,imgSrc,placeholder,errorImg,radius);
    }
}
